Разработку проекта ElWiki можно вести в windows или linux окружении.

## Предварительные условия
### Инструменты
* Java, v17
* Maven, v3.8.1

Для веток master, it2023
* Eclipse IDE #1 (для всего кода): Eclipse IDE for RCP and RAP Developers. Минимальная версия – 2023-12 (4.30.0)
* Eclipse IDE #2 (для разработки моделей): Eclipse Modeling Tools. Минимальная версия – 2023-12 (4.30.0)

Для ветки it2022
* Eclipse IDE #1 (для всего кода): Eclipse IDE for RCP and RAP Developers. Минимальная версия – 2022-03 (4.23.0)
* Eclipse IDE #2 (для разработки моделей): Eclipse Modeling Tools. Минимальная версия – 2022-03 (4.23.0)

Эти IDE можно загрузить с [eclipse.org](https://www.eclipse.org/downloads/packages/)


## Подготовка IDE, получить проект из репозитория

_Необязательное дополнение._  В RCP IDE выберите в меню «Help -> Eclipse Marketplace...» и добавьте следующее:
* _Eclipse Enterprise Java and Web Developer Tools 3.25_ (выбранные компоненты по умолчанию). Это полезно для работы с JSP и другого.
* _Sirius 7.0_ (выбранные компоненты по умолчанию). Это полезно для просмотра проектов моделирования, без перехода на IDE для моделирования.

Также добавить фильтр «target», чтобы скрыть целевой каталог проектов.
Следует помнить, что в этом случае всё содержащее "target" в начале имени, не будет доступно в IDE.

### Получить ElWiki из репозитория

В перспективе «Git» RCP IDE – следует выберать «Clone Git repository».
В первом диалоге – укажите URI этого репозитория.
В диалоге «Local Destination» укажите необходимую целевую директорию.

Следующий шаг – необходимо импортировать требуемые проекты в рабочую область. (из выпадающего меню, выберите «Import Projects...»)

Выбирайте только следующее:
* Проект 'Launchers' для желаемой платформы, Linux или Windows.
* Проект 'TargetPlatform'
* Проект 'elwikijsp.root'
* для следующих отмеченных элементов – снять выделение, а всё входящее в них – оставить выбранным: <br>
  'bundles' <br/>
  'bundles_elwiki' <br/>
  'bundles_elwiki_model' - выбрать только проект *org.elwiki.data* <br/>
  'bundles_extra' <br/>
  'bundles_import' <br/>
  'bundles_managers' <br/>
  'bundles_plugins' <br/>
  'features' <br/>
* для следующих отмеченных элементов – снять выделение, и для всего входящего в них: <br/>
  'bundles_4tests' <br/>
  'products' <br/>
  'releng' <br/>
  'tests' <br/>
  'p2_repositories'
  'taglibs-p2-site'


### Настройка RCP IDE

(рассматривается Eclipse IDE for RCP and RAP Developers)

В настройках среды обязательно снимите флажок:
> Version Control (Team) > Git > Projects > Automatically ignore derived resources by adding them to .gitignore

В перспективе «Plug-in Development» – следует установить в свойствах каталогов-контейнеров
 (это 'bundles', 'bundles_4tests', 'bundles_elwiki' ... 'tests') параметр «Derived». Каждый каталог проекта – рассматривается как ресурс IDE. <br/>
Для этого – открыть popup меню каталога, выбрать Properties, и в открывшемся диалоге «Properties for ...»  активировать параметр «Derived».


### Настройка IDE моделирования

(рассматривается Eclipse Modeling Tools)

В перспективе «Git» среды моделирования – выберите «Add existing local Git Repository» и укажите каталог,
 в котором находится локальный репозиторий, рассматриваемый в предыдущих шагах.

После этого импортируйте проекты:
* org.elwiki.data
* dwe.data

## Создать код модели импортирования

Для проекта dwe.data – надо сгенерировать код модели. <br/>
Открыть файл "dwe_data.genmodel". В редакторе, для корневого узла, из popup меню выбрать «Generate Model Code».

## Настройка целевой платформы

Для создания кода ElWiki в IDE или при помощи Maven – требуется настроить целевую платформу.

Параметры целевой платформы находятся в *.target файлах проекта
 [TargetPlatform](https://gitverse.ru/vfedorov/elwiki_jsp/content/master/TargetPlatform),
 соответственно для Linux и Windows.

Например, «2021-12_all(wnd).target» – для разработки под Windows.
Этот файл содержит набор каталогов, указывающих на репозитории p2.
Описание этих хранилищ должно соответствовать их фактическому расположению.

### Локальные репозитории

P2 репозитории, необходимые для ElWiki, создаются с использованием maven.
Для создания репозиториев следует перейти в рабочий каталог «p2_repositories»,
 который располагается в корне Git репозитория ElWiki.
В этом каталоге запустите maven: 
> mvn p2:site

Репозиторий p2 Eclipse 2023-12 также используется для сборки ElWiki. Локальная копия этого репозитория используется для разработки проекта. (вы можете использовать исходный репозиторий, доступный через http, но такой подход затрудняет эксперименты с плагинами Eclipse)
Локальная копия репозитория создается с помощью скрипта
  [doMirror_2023-12.cmd](https://github.com/fedorov-vk/elwiki_jsp/blob/master/utilities/doMirror_2023-12.cmd).
Этот сценарий следует запускать в подходящем месте. Размер полученного локального репозитория 2023-12 – 2Гб.

Для maven, расположение этих репозиториев задается в файлах "elwikijsp.root/repositories_list.*" <br/>

Для IDE, расположение репозиториев задается в файлах .target, проекта *TargetPlatform*.
Эти файлы определяют параметры целевой платформы, при сборке средствами IDE.
Например, для Windows:
 [2023-12_all(wnd).target](https://gitverse.ru/vfedorov/elwiki_jsp/content/master/TargetPlatform/2023-12_all(wnd).target)

__NOTE:__ Браузер, при выводе HTML страниц использует соответствующие ресурсы.
Эти ресурсы собираются только при помощи maven
 – таким образом, в первую очередь следует запустить сборку при помощи maven,
а уже затем продолжать разработку, и запускать ElWiki из IDE...
